//
//  @ Project : Galaxy Star Trading System
//  @ File Name : ProviderManager.h
//  @ Date : 2014/9/5
//  @ Author :
//
//

#if !defined(_CPROVIDERMANANGER_H)
#define _CPROVIDERMANANGER_H

namespace GSTrader
{
	namespace TradeStrategy
	{
		class TRADE_STRATEGY_API CProviderManager
		{
		public:
			CProviderManager(CFramework* pFramework);
			virtual ~CProviderManager();

			virtual bool AddProvider(CProvider* pProvider);
			CProvider* GetProvider(int nId);

			size_t GetProviderSize();

			void RemoveProvider(CProvider* pProvider);
			void RemoveAllProvider();

			void GetAllProvider(vector<CProvider*>& vProvider);
		protected:
			CFramework* m_pFramework;
			map<int, CProvider*> m_mapProvider;
		};
	}
}

#endif // _CPROVIDERMANANGER_H
